// ...existing code...
#include <stdio.h>

int main(void)
{
    int n;
    if (scanf("%d", &n) != 1 || n <= 0) //scanf➕要求的简写务必掌握if(scanf() != 1 || ...)，！=1是输入非法的意思并非赋值
    {
        return 0;
    }

    int counts[10] = {0};//初始化数组，记录0-9每个数字出现的次数
    for (int i = 0; i < n; ++i) {
        unsigned int value;
        if (scanf("%u", &value) != 1) {
            return 0;
        }
        if (value == 0) {
            counts[0]++;//特殊情况0单独处理
        } else {
            while (value > 0) {
                counts[value % 10]++;
                value /= 10; 
                //计算每一位数字的核心
            }
        }
    }

    int max_count = 0;
    for (int d = 0; d < 10; ++d) {
        if (counts[d] > max_count) {
            max_count = counts[d];
        }
    }

    printf("%d:", max_count);
    for (int d = 0; d < 10; ++d) {
        if (counts[d] == max_count) {
            printf(" %d", d);
        }
    }//出现次数最多的数字可能不止一个，所以需要遍历输出
    putchar('\n');
    return 0;
}
// ...existing code...